﻿using System.Collections.Generic;

using G.Model;

namespace G.Runtime
{
    public delegate void ElementsReadyToMoveChangedHandler(ICollection<GameElement> elements);
        
    public interface GameController
    {
        event ElementsReadyToMoveChangedHandler ElementsReadyToMoveChangedEvent;
        
        void Start();
        
        void EndGame();
        
        void RemovePlayer(GamePlayer player);
        
        ICollection<GameElement> ElementsReadyToMove {
            get;
        }
        
        StringGameValue NameOfPlayerWithTurn
        {
            get;
        }
        
    }
}
